package co2.bean;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.RowEditEvent;

import co2.pojos.KelilingLingkaran;


@ManagedBean
@ViewScoped
public class KelilingBean {

	private KelilingLingkaran hijau;
	private KelilingLingkaran merah;
	private KelilingLingkaran biru;
	
	
	@PostConstruct
	public void postCon(){
		hijau = new KelilingLingkaran();
		merah = new KelilingLingkaran();
		biru = new KelilingLingkaran();
	}
	
	public void hijauSubmit(){
		onSubmit(hijau);
	}
	public void merahSubmit(){
		onSubmit(merah);
	}
	public void biruSubmit(){
		onSubmit(biru);
	}
	
	public void hijauClear(){
		onClear(hijau);
	}
	public void merahClear(){
		onClear(merah);
	}
	public void biruClear(){
		onClear(biru);
	}
	
	public void onClear(KelilingLingkaran kl){
		kl.setJariJari(null);
		kl.setDiameter(null);
		kl.setKeliling(null);
		kl.setKldiv(null);
	}
	public void onSubmit(KelilingLingkaran kl){
		
		if(kl.getJariJari()!=null){
			if(kl.getJariJari().compareTo(new BigDecimal("0")) == 0){
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Jari-Jari Tidak Boleh nol",""));
			}else{
				BigDecimal diameter = kl.getJariJari().multiply(new BigDecimal("2"));
				kl.setDiameter(diameter);
				
				BigDecimal keliling = diameter.multiply(new BigDecimal("3.14"));
				kl.setKeliling(keliling);
				
				BigDecimal kldiv = keliling.divide(diameter,3,BigDecimal.ROUND_HALF_EVEN);
				kl.setKldiv(kldiv);
			}
		}else{
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Jari-Jari Tidak Boleh kosong",""));
			
		}
	
	}

	public KelilingLingkaran getHijau() {
		return hijau;
	}

	public void setHijau(KelilingLingkaran hijau) {
		this.hijau = hijau;
	}

	public KelilingLingkaran getMerah() {
		return merah;
	}

	public void setMerah(KelilingLingkaran merah) {
		this.merah = merah;
	}

	public KelilingLingkaran getBiru() {
		return biru;
	}

	public void setBiru(KelilingLingkaran biru) {
		this.biru = biru;
	}
	
	
}
